package org.tulkas.robot.base;

/**
 * Base class for all the Manager classes. The Manager classes have the following similarities:<BR/>
 * 1. Singleton and have a getInstance() static method<BR/>
 * 2. Can be destroyed and reinitialized.<BR/>
 * 3. The Implementation of the Manager can be determined by Configuration. The configuration key is in the form of:<BR/>
 * implementation.[manager class name].[number]=[actural impl class name]<BR/>
 * The manager class name is the original implementation of the manager. the actural impl class name is the class that actural created when getInstance() is called.<BR/>
 * The actural impl class must inherit the manager class. <BR/>
 * If there are several config entries for the same manager class. The one with the highest number will be used.<BR/> 
 * The number can be empty, which means default number 0<BR/>
 * This mechanism allows The implementation of the manager be overrided by other module or the consumer of the tool.<BR/>
 * 
 * @author <a href="mailto:tulkas.web@gmail.com">Tulkas</a>
 *
 */
public interface IManager {
	public void destroy();
}
